#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct TRIA3_COMPForceData
{
    SG::DataStructure::Common::Id   m_eId       = 0;      /// Element identification number
    char                            m_THEORY[8] = { 0 };  /// Theory
    SG::DataStructure::Common::Id   m_LAMID     = 0;      /// Lamina number
    SG::DataStructure::Common::Real m_FP        = 0.0;    /// Failure index for direct stresses
    SG::DataStructure::Common::Real m_FM        = 0.0;    /// Failure mode for maximum strain theory
    SG::DataStructure::Common::Real m_FB        = 0.0;    /// Failure index for interlaminar shear stress or -1
    SG::DataStructure::Common::Real m_FMAX      = 0.0;    /// Maximum of FP and FB or -1
    char                            m_FFLAG[4]  = { 0 };  /// Failure flag
    SG::DataStructure::Common::Id   m_domainId  = 0;      /// Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const TRIA3_COMPForceData& val1, const TRIA3_COMPForceData& val2);

///< @brief 排序使用
DECLSPEC bool operator< (const TRIA3_COMPForceData& a, const TRIA3_COMPForceData& b);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
